Increasingly computer software is being delivered on a service basis, that is, rather than being distributed on media and installed by a user on their computer, it is provided from a service or computer facility across a network to the client computer and then installed or deployed. This model is typically referred to as Software as a Service (Saas). The software is typically licensed for use according to a number of entitlements, or conditions of usage. An alternative model is referred to as on premises software in which software is installed from and run on computers on the premises (e.g. in the building) of the person or organization using the software.
It is often desirable for a software service, either SaaS or on premise software, to be able to track, monitor and identify unique instances of client software provided by the service, either an SaaS client software component or an on premise installed software component. Such capability to monitor and identify deployed client software components can be used, for example, (1) to prevent piracy of client software components, (2) to prevent the use of the service, to the extent that the client software component may enforce, when not entitled, and (3) to ensure that the client software component is the correct version, patch level, appropriate software component by any definition, for the service in use.
One method for combating software piracy is to include a key, an encrypted or signed data element, with the software. The key is typically a static data element which can be verified at any time by a service or computer to ensure that it has not been tampered with. However, because the key is static it can't be modified to reflect life cycle information such as the type of usage, the amount of usage, and the like. Thus it would be advantageous to be able to verify client software components using a dynamic data structure that can be updated provide information concerning life cycle events.
Thus, it is with respect to these considerations and others that the present invention has been made.